unsigned char CPort::inport(unsigned short PortAddress)
{
if (!bIsWindowsNTorLater)
{
return _inp(PortAddress);
};
unsigned int error;
DWORD BytesReturned;
unsigned char Buffer[3];
unsigned short * pBuffer;
pBuffer = (unsigned short *)&Buffer;
*pBuffer = PortAddress;
error = DeviceIoControl(PortTalk_Handle,
IOCTL_READ_PORT_UCHAR,
&Buffer,
2,
&Buffer,
1,
&BytesReturned,
NULL);
if (!error)
AfxMessageBox("Errore di comunicazione con il driver",MB_OK,0);
return(Buffer[0]);
}
void CPort::outport(unsigned short PortAddress, unsigned char byte)
{
if (!bIsWindowsNTorLater)
{
_outp(PortAddress,byte);
return;
};
unsigned int error;
DWORD BytesReturned;
unsigned char Buffer[3];
unsigned short * pBuffer;
pBuffer = (unsigned short *)&Buffer[0];
*pBuffer = PortAddress;
Buffer[2] = byte;
error = DeviceIoControl(PortTalk_Handle,
IOCTL_WRITE_PORT_UCHAR,
&Buffer,
3,
NULL,
0,
&BytesReturned,
NULL);
if (!error)
AfxMessageBox("Errore di comunicazione con il driver",MB_OK,0);
}
|